// 联合类型 union_types

let numberOrString: number | string

// numberOrString = "abc"
// numberOrString = 123

// 联合类型使用共有属性使用
// numberOrString.toString()


// 类型断言
// 问题：联合类型的时候，需要使用指定类型属性
function getLength(input: string | number): number {
  const str = input as string
  if (str.length) {
    return str.length
  } else {
    const number = input as number
    return number.toString().length
  }
}


// type guard
function getLengthOne(input: string | number): number {
  if (typeof input === 'string') {
    return input.length
  } else {
    return input.toString().length
  }
}